home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / info-service / gopher / Rice_CMS / gopher24.readme < prev    next >
Encoding:
Text File  |  1993-01-25  |  17.6 KB  |  413 lines

  1.  
  2. WELCOME
  3.  
  4. Welcome to GopherSpace!   I hope you enjoy your trek.
  5.  
  6. The InterNet Gopher  (or just "gopher" for short)  is a simple
  7. information dispersal tool based on TCP/IP.   It is an example
  8. of the kind of seemless interoperability that is possible
  9. when we (programmers) actually try to do things right.
  10. The Gopher protocol doesn't care about host operating systems,
  11. their file storage formats,  character sets,  or command suite
  12. (or lack thereof).
  13.  
  14. CMS Gopher is based on three very strong tools:  the REXX language,
  15. Arty Ecock's RXSOCKET,  and CMS Pipelines.   As a programmer,
  16. I literally went to tears over how well these three work together.
  17.  
  18. More warm fuzzies later.   You need to unpack this thing.
  19.  
  20.  ------  ------  ------  ------  ------  ------  ------  ------  ------
  21.  
  22. UNPACKING
  23.  
  24. CMS Gopher is packaged in several forms.   Pick your favourite
  25. de-archival tool and start unpacking.   Both server and client
  26. can reside on the same disk.   (that's how they are at Rice)
  27.  
  28. CMS TAR: (Rick's choice)
  29.  
  30. Enter the command:      tar xvf gopher24 = = fm
  31.  
  32. where  fm  is the filemode of the disk or SFS directory to hold Gopher.
  33.  
  34. CARDDUMP: (Cornell 'CARD' format)
  35.  
  36. You may need to reblock the binary file with  ... | FBLOCK 80 | ... ,
  37. then  PUNCH  it to yourself,  order it to the top of your reader,
  38. and   CARD LOAD * * fm   to get the package onto the disk you want.
  39.  
  40.         CP SPOOL PUNCH TO *
  41.         PUNCH GOPHER24 CARDDUMP (NOHEADER
  42.         CP ORDER RDR spoolid
  43.         CARD LOAD * * fm
  44.  
  45. READCARD:
  46.  
  47. This is a plain-text archive,  which means that executables are
  48. not included.   You'll have to acquire RXSOCKET MODULE and other
  49. binaries via some other means.   You'll have to generate the
  50. message repository manually.   PUNCH the file to yourself with the
  51. (NOHEADER option,  order it to the top of your reader,  then
  52. READCARD * * fm,  where  fm  is the disk or SFS directory where you
  53. intend to load CMS Gopher.
  54.  
  55.         CP SPOOL PUNCH TO *
  56.         PUNCH GOPHER24 READCARD (NOHEADER
  57.         CP ORDER RDR spoolid
  58.         READCARD * * fm
  59.  
  60. LISTSERV:
  61.  
  62. Send a message (with either TELL or MAIL) to LISTSERV@RICEVM1
  63. (LISTSERV@RICEVM1.RICE.EDU),
  64.  
  65.         get gopher24 package
  66.  
  67. In CMS that's:   TELL LISTSERV AT RICEVM1 GET GOPHER24 PACKAGE
  68.  
  69. LISTSERV will send you everything.   No archive extraction needed.
  70.  
  71.  ------  ------  ------  ------  ------  ------  ------  ------  ------
  72.  
  73. SETTING UP THE CLIENT
  74.  
  75. You may have some special method of giving users access to your
  76. CMS applications.   At Rice,  we keep most applications on their own
  77. minidisk,  and leave a  "wrapper" EXEC on a public,  always accessed
  78. minidisk  (our X disk).
  79.  
  80. The client is GOPCLI.   Whatever wrapper you create should check for
  81. GOPCLI EXEC and access the right disk or SFS directory if it's missing.
  82.  
  83. You may want to tailor a couple of environment variables.   There's no
  84. CONFIG file for the client in CMS Gopher 2.4.   All configuration data
  85. are kept in user GLOBALVs.   See  HELP GOPHER  for a list of user-settable
  86. Global Variables.   HOST and NAME are two that many people like to predefine.
  87. HOST is the TCP/IP host computer where your  "top level"  gopher server runs.
  88. NAME is the name of that  "top level"  menu.   (there's no way in the
  89. Gopher protocol for a menu to name itself;  all menus and plain files
  90. are named by the menu that references them,  so you need to set NAME
  91. or you'll get  "(root menu)",  harmless but ugly)
  92.  
  93. Note that the client reserves the fileid  VMGOPHER DOCUMENT  for times
  94. when it needs to write a file to CMS disk and can't use the name
  95. provided by the current gopher server.
  96.  
  97. PICTURES
  98.  
  99. CMS Gopher 2.4 supports the gopher "image" (type I) files.   Presently,
  100. the only format displayable is GIF files using the VMGIF package available
  101. from the fine folks at BLEKUL11.
  102.  
  103.  ------  ------  ------  ------  ------  ------  ------  ------  ------
  104.  
  105. SETTING UP THE SERVER
  106.  
  107. The server is GOPSRV.   Setting it up is trickier than setting up the
  108. client because you not only have to create a virtual machine for it to
  109. run in,  but you also have to take the time to structure your gopher data
  110. nicely.   See  GOPHERD DIRECT for an example CP Directory entry.
  111. You can have multiple gopher servers.
  112.  
  113. If you don't have SFS,  you can create a hierarchical set of menus using
  114. FILELISTs.   Some VMers insist on using FLIST.   They say it's faster
  115. than FILELIST.   Fine.   But FILELIST lets you save and load FILELISTs
  116. such that you can easily bundle files together almost as easily as with
  117. true directories.   If you do have SFS,  you can let it do the work of
  118. maintaining your menu hierarchy.
  119.  
  120. Gopher FILELISTs are made up of lines of the form:
  121.  
  122.         fn  ft  fm  path  "name"  type
  123.  
  124.                 where fn/ft/fm are the filename, filetype, and filemode
  125. of the file being referenced.   The path is really only the last partof
  126. the gopher "selector string" pointing to this file.   The paths of all
  127. parent menus are automatically prepended.   The name (must be in quotes)
  128. is what the user sees in the menu referencing this file.   The type is a
  129. one-digit type indicator,  any of:
  130.  
  131.                 0       this file is plain-text
  132.                 1       this item is a menu
  133.                 4       this is a Macintosh file
  134.                 5       this is an MS-DOS file
  135.                 6       this is a UUEncoded file
  136.                 7       this item is a search on a menu
  137.                 9       this is a binary file
  138.                 I       image (graphic; typically GIF)
  139.                 s       sound
  140.  
  141. There are other types,  but these are the ones most useful in FILELISTs.
  142.  
  143. Everyhing except the filename is optional.   Filetype, filemode, path,
  144. name and type may all be omitted,  in which case the server will choose.
  145. The first character of each line in a Gopher FILELIST must be either
  146. a blank or an asterisk,  the latter denoting a comment.   With care,
  147. you can in fact use a Gopher FILELIST as input to CMS' FILELIST EXEC)
  148.  
  149. I mentioned the menu type, digit 1.   Please note that you do NOT specify
  150. a menu within a menu by marking some file as type 1,  but rather by using
  151. a special filetype "*".   The server will automatically mark it as type 1.
  152.  
  153. The  "root"  menu is defined by <userid> FILELIST,  where <userid>
  154. is the name of your gopher server virtual machine,  typically GOPHERD.
  155. You can override this and other parameters in GOPHERD CONFIG.
  156.  
  157. So,  making a long story longer,  to setup your gopher server,  define
  158. virtual machine GOPHERD,  give it access to your local gopher disk,
  159. create GOPHERD FILELIST listing one or more files you wish to serve-out,
  160. then  CP AUTOLOG GOPHERD.
  161.  
  162. There is a CONFIG file,  which you can tailor as needed.   With the 2.4
  163. server,  the only variables meaningful in the config file are  LOGPIPE,
  164. PORT,  and  ROOT.   PORT defaults to 70.   ROOT defaults to the virtual
  165. machine name  (server's userid).   LOGPIPE defaults to CONSOLE.
  166.  
  167. You will probably want to dedicate port 70 to GOPHERD in your local
  168. PROFILE TCPIP for you TCPIP service virtual machine.   It's also good
  169. to have GOPHERD listed as AUTOLOGged by TCPIP.   Neither of these steps
  170. are required to test GOPHERD;  just run it.   It's pretty harmless.
  171.  
  172. PIPES AND AUTHORIZATIONS
  173.  
  174. A nice way to degrade performance of your gopher server is to create a
  175. NAMES file for a menu.   In spite of the cost,  this is useful because
  176. you can control access to and/or define CMS Pipelines specifications for
  177. menus and items in a NAMES file.
  178.  
  179. When the server accesses a directory,  it looks for <menu> NAMES.
  180. (this works best with FILELISTs;  if you do it for SFS directories,
  181. consider that the server may access other directories,  releasing the
  182. one that holds your NAMES file,  as it resolves the selector path string)
  183. If <menu> NAMES exists,  the server uses NAMEFIND to process it.
  184. This is best explained by an example:
  185.  
  186.  
  187.         :nick.myfile   :fn.my   :ft.file
  188.                        :auth..rice.edu deny .cuny.edu .gov allow *
  189.                        :pipe.CP Q NAMES | SPLIT /,/
  190.  
  191. For the file  MY FILE,  any host who's InterNet hostname ends in
  192. ".rice.edu"  (all of the Rice campus)  can read it.   Any host who's
  193. InterNet hostname ends with  ".cuny.edu"  or  ".gov"  is prohibited.
  194. Everyone else is then permitted.   If the client host is allowed access,
  195. then instead of reading the file  MY FILE,  the server sends the output
  196. of the pipeline  CP Q NAMES | SPLIT /,/  to the client.
  197.  
  198. This can get quite sophisticated.   No,  you do not have to have both
  199. an auth and a pipe in the NAMES file entry.   You can have either one
  200. or neither.   And know that CMS NAMEFIND does not provide a way to
  201. specify the filemode of the NAMES file,  so be careful about menu
  202. name collisions.
  203.  
  204. You can also specify  host, port, path, name, and type  in a NAMES file.
  205. This means that you can use NAMES files in place of GOPHER (link) files,
  206. but remember that NAMEFIND is going to cost you.
  207.  
  208. Link files?   They let you point to other gopher servers.
  209. See the Q&A section below,  otherwise this section will go on forever.
  210.  
  211. SEARCH ITEM
  212.  
  213. Creating a search item in a menu is easy.   Set it up just like you
  214. would any other sub-menu,  but mark it as Type 7.   Something like:
  215.  
  216.         MYSEARCH FILELIST * whatever "My Own Search Item" 7
  217.  
  218.                 in the parent menu's FILELIST,  or,
  219.  
  220.         :nick.whatever :fn.mysearch :ft.filelist :type.7
  221.  
  222. There's no reason why you can't have the menu as a whole available
  223. right next to the searched version,  like:
  224.  
  225.         MYSEARCH FILELIST * whatever "My Own Search Item" 7
  226.         MYSEARCH FILELIST * whatever "My Own Search Item (not indexed)"
  227.  
  228. You must also create an index file for this menu.   The easiest way is
  229. by using GOPGEN.   GOPGEN is primarily a tool for making your own mods
  230. to CMS Gopher,  but it also performs the right incantation on WISHLG
  231. (thank's Yossie) to create an index for you.   The server then will
  232. invoke WISHLP (thank's again, Yossie) to list the files that match
  233. the client's search expression.
  234.  
  235.         GOPGEN INDEX MYSEARCH
  236.  
  237. MYSEARCH FILELIST must exist.   All of the files it lists must exist.
  238. You must then put the index file,  MYSEARCH GOPINDEX,  where the server
  239. will access it.
  240.  
  241.  ------  ------  ------  ------  ------  ------  ------  ------  ------
  242.  
  243. FUNCTIONS OF FILES
  244.  
  245. Here's a list of most of the files in the package and their function:
  246.  
  247.       GOPHER   EXEC     "wrapper" EXEC; ensures product disk accessed
  248.       GOPCLI   EXEC     the client
  249.       GOPCLINI EXEC     client initialization (called once from GOPCLI)
  250.       GOPCLTCP REXX     handles all TCP/IP work for the client
  251.       GOPCLITM REXX     decides what how a given item should be processed
  252.       GOPCLIST REXX     displays connection status,  "Reading ...",  etc
  253.       GOPCLIMB REXX     menu browser
  254.       GOPCLIUI REXX     user input (prompting)
  255.       GOPCLTXT REXX     reformats plain-text
  256.       GOPCLIFV REXX     file viewer; may be used stand-alone
  257.       GOPCLIGV REXX     graphics viewer; presently GIFs only
  258.       GOPCLIFI EXEC     returns legal CMS fileid from a gopherspace path
  259.       GVM      EXEC     "DIALed Gopher" client; calls GOPHER to call GOPCLI
  260.       GVM      DIRECT   CP Directory entry for the DIALed Gopher
  261.  
  262.       GOPHERD  EXEC     "wrapper" EXEC for the server; write your own
  263.       GOPSRV   EXEC     the server
  264.       GOPSRVLS REXX     lists files and menus (menus in LISTFILE format)
  265.       GOPSRVRP REXX     gopher path resolution; uses GOPSRVLS output
  266.       GOPSRVMB REXX     menu builder
  267.       GOPSRVGL REXX     gopher "link" processor
  268.       GOPSRVAU EXEC     performs authorization check
  269.       GOPSRVFM EXEC     dummy filemode function for server
  270.       GOPHERD  DIRECT   CP Directory entry for the server
  271.  
  272.       EXPAND   REXX     expands TAB characters
  273.       PRINT    REXX     similar to CMS PRINT, but a pipe
  274.       A2E      REXX     translate ASCII to EBCDIC
  275.       E2A      REXX     translate EBCDIC to ASCII
  276.       TCPA2E   REXX     A2E, but follows TCP/IP translate tables
  277.       TCPE2A   REXX     E2A, "   "       "      "         "
  278.       STANDARD TCPXLATE suggested ASCII <---> EBCDIC translate tables
  279.       STANDARD TCPXLBIN binary object built from above TCPXLATE
  280.  
  281.       GOPUME   MESSAGES message repository source
  282.       GOPUME   TEXT     message repository object
  283.  
  284.       GOPXEDPR XEDIT    XEDIT profile for XEDIT used as file viewer
  285.       GOPXEDII XEDIT    "item info" command for XEDIT as file viewer
  286.  
  287.       GOPHMARK EXEC     migrates bookmars from 2.3
  288.  
  289.       RXSOCKET MODULE   Arty's wonderful CMS Socket tool
  290.       RXSOCKET MODULESP VM/SP and VM/HPO version of above
  291.       DISKWRIT MODULE   minidisk need reACCESSing?
  292.       WISHLP   MODULE   Yossie's *fast* search engine
  293.       WISHLG   MODULE   index builder for above
  294.  
  295.       PH       EXEC     Nick LaFlamme's CSO/qi (phonebook) client
  296.  
  297.       GL       EXEC     primitive tool for browsing CMS Gopher FILELISTs
  298.  
  299.       GOPHERCAT EXEC    dumps gopherspace files right onto your console
  300.  
  301.       GOPHERDH REXX     a pipeline stage that interprets CMS HELP
  302.       HELP     NAMES    defines HELP menu to the server using above
  303.  
  304.  ------  ------  ------  ------  ------  ------  ------  ------  ------
  305.  
  306. There is a discussion list,  VMGOPHER@PUCC.Princeton.EDU.
  307.  
  308. There is another CMS Gopher (both server and client),  popularly called
  309. "the Vienna Gopher",  available from Gerhard Gonter <GONTER@AWIWUW11>.
  310.  
  311.  ------  ------  ------  ------  ------  ------  ------  ------  ------
  312.  
  313. Q:      The basics, documents and FILELIST menus, is fairly easy to grasp,
  314.         but the relationship of a NAMES file and its entries to a FILELIST
  315.         file and its entries is not at all evident to the poor soul that
  316.         just wants to provide an information service without much time
  317.         invested (I.e., without subscribing to VMGOPHER).
  318.  
  319. A:      The easiest way to start is just name some plain-text files in
  320.         GOPHERD FILELIST  (which are available to your GOPHERD service
  321.         machine on an accessed disk or SFS directory).   Then after you're
  322.         comfortable with that,  try some "links"  (filetype GOPHER) and
  323.         sub-menus  (filetype FILELIST).   Then get into NAMES files.
  324.  
  325. Q:      How to I point to another server/menu?
  326.  
  327. A:      The easiest way is with a "link" file  (filetype GOPHER).
  328.         When a link file shows-up in any FILELIST,  the contents of
  329.         that file are read and the information specified is presented
  330.         to the client for that particular menu item.
  331.  
  332.         The contents of a GOPHER (link) file are the same as
  333.         for a UNIX server link file,  of the form:
  334.  
  335.                 name=Rice University CMS Gopher server
  336.                 host=ricevm1.rice.edu
  337.                 port=70
  338.                 path=1/
  339.                 type=1
  340.  
  341.         As of 2.4,  GOPHER file can have more than one link in it.
  342.  
  343. Q:      How does a GOPHER file differ from a "link" in a NAMES file?
  344.  
  345. A:      The NAMES file is far more extensive.   (and exPensive)
  346.         With the CMS Gopher server,  you don't use "link" files to
  347.         override the characteristics of other files in the menu  (as you
  348.         would with a UNIX server).   With the CMS server,  GOPHER (link)
  349.         files are exclusively used to reference other network (usually
  350.         non-local) resources,  while the NAMES file may apply to local
  351.         files,  which reside on your system OR to remote services.
  352.  
  353. Q:      Some folks have made it seem that their gopher server files
  354.         are free for the taking ...  is there a gopher feature
  355.         to pull these in?
  356.  
  357. A:      To "receive" (keep) an item,  press PF5.   The receive function
  358.         will not overwrite an existing file  (though you can still
  359.         view & SAVE from XEDIT).
  360.  
  361. Q:      GOPHERD should document DISKWRIT in the prolog.
  362.  
  363. A:      GOPHERD uses DISKWRIT to perform the same "reaccess" trick that
  364.         GONE EXEC does when you reconnect.   If disks appear to have
  365.         changed,  they are reACCESSed so that the server has the latest
  366.         revision of any files on those minidisks.
  367.  
  368. Q:      Why are the "STANDARD" translate-table files provided?
  369.         Are these for use with the server?
  370.  
  371. A:      Both server and client.
  372.         The default ASCII <---> EBCDIC translation in VM TCP/IP (FAL)
  373.         is not 100% correct for the majority of the VM/UNIX/VMS/DOS/Mac
  374.         world we live in.   STANDARD TCPXLATE and TCPXLBIN provide
  375.         a 1-for-1 translation between  de-facto "network EBCDIC"
  376.         (codepage 1047)  and  "extended ASCII"  (ISO 8859-1).
  377.  
  378. Q:      If PhoneBk and Search are available, how do we use them?
  379.  
  380. A:      Presently,  CMS GopherD does not support PhoneBk and Search engines.
  381.         The client (GOPCLI) is happy to utilize such servers on other hosts.
  382.  
  383. Q:      Some GOPHERs restrict access or output to some clients;  how?
  384.  
  385. A:      Specify an "auth" value in the NAMES file.   The tag :auth.
  386.         allows for control over any object in a menu  (defined by a
  387.         FILELIST and/or NAMES file),  even the menu itself.
  388.  
  389. Q:      Is there anything different about your RXSOCKET?
  390.  
  391. A:      RXSOCKET is supplied because Gopher requires it.
  392.         RXSOCKET was created by Arty Ecock.   He maintains it.
  393.         Rice doesn't have any mods to RXSOCKET,  and Gopher doesn't
  394.         need any special treatment from RXSOCKET.   If you find an
  395.         RXSOCKET packaged with CMS Gopher to be out-of-date,  by all
  396.         means,  use the current one or get the latest from Arty.
  397.  
  398.         If you pick-up RXSOCKET MODULE from a UNIX FTP host,  you must
  399.         "deblock" it back into its CMS form (record oriented) with:
  400.  
  401.         PIPE DISK RXSOCKET U-MODULE | DEBLOCK CMS | DISK RXSOCKET MODULE
  402.  
  403.  ------  ------  ------  ------  ------  ------  ------  ------  ------
  404.  
  405. Thanks to:
  406.  
  407. Yossie Silverman,  Jim Gerland,  Arty Ecock,  Serge Goldstein,
  408. Chuck Boeheim,  Wayne Smith,  Jim Colten,  Nick LaFlamme,
  409. Rich Wiggins,  Martha McConaghy,  John Hartmann,  Melinda Varian,  ...
  410.  
  411. (this list continues to grow,  and some have surely been left out)
  412.  
  413.